home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 March / EnigmA AMIGA RUN 05 (1996)(G.R. Edizioni)(IT)[!][issue 1996-03][Skylink CD IV].iso / earcd / comm2 / ftp-mail.lha / FTP-Mail / ftpsplit.rexx < prev    next >
OS/2 REXX Batch file  |  1994-10-28  |  2KB  |  130 lines

  1. /*
  2.    Looks for a name to sepereate the incoming mails for ftp-mail,
  3.    writes the incoming mail to this file
  4.    and calls ftp-mail as ARexx-background-process via REXX-Port
  5. */
  6.  
  7. SIGNAL ON SYNTAX
  8. SIGNAL ON ERROR
  9. SIGNAL ON IOERR
  10. /*SIGNAL ON NOVALUE*/
  11. SIGNAL ON BREAK_C
  12. SIGNAL ON BREAK_D
  13. SIGNAL ON BREAK_E
  14. SIGNAL ON BREAK_F
  15. SIGNAL ON HALT
  16.  
  17. ARG Arguments
  18.  
  19. CALL PRAGMA("P",-11)
  20.  
  21. PARSE SOURCE x
  22. PARSE VAR x . . . path .
  23. version     = '$VER: ftpsplit 0.99 (14-Jul-1994)
  24. '
  25. progname    = WORD(version,2)
  26. /*path        = PRAGMA('D')*/
  27. programmer  = 'Alexander Aulbach'
  28.  
  29. x=LASTPOS('/',path)
  30. IF x=0 THEN DO
  31.   x=LASTPOS(':',path)
  32.   IF x=0 THEN DO
  33.     errortxt='Programpath not ok!'
  34.     SIGNAL LEAVE
  35.   END
  36. END
  37. path=DELSTR(path,x+1)
  38. CALL PRAGMA("D",path)
  39.  
  40. SAY
  41. SAY "-- START "progname" at "DATE() TIME()
  42. SAY "   Arguments: "Arguments
  43. SAY
  44.  
  45. iname="tmp/mail."
  46.  
  47. i=1
  48. DO WHILE EXISTS(iname||i)
  49.  i=i+1
  50. END
  51.  
  52.  
  53. DO WHILE ~OPEN('out',iname||i,"W")
  54.   SAY progname' : Error while opening file "'iname||i'"'
  55.   i=i+1
  56. END
  57.  
  58. SAY progname" : Write "iname||i
  59.  
  60. DO WHILE ~EOF(STDIN)
  61.   CALL WRITELN('out',READLN(STDIN))
  62. END
  63. CALL CLOSE ('out')
  64.  
  65. SAY
  66.  
  67. i=200
  68. DO WHILE EXISTS("T:ftp-mail.semaphore") & i>0
  69.   ADDRESS COMMAND "WAIT 1"
  70.   i=i-1
  71. END
  72. IF i<=0 THEN DO
  73.   SAY "Waiting aborted.."
  74.   EXIT 10
  75. END
  76.  
  77.  
  78. IF ~EXISTS("tmp") THEN ADDRESS COMMAND MakeDir tmp
  79.  
  80. ADDRESS COMMAND "Run RX >>tmp/ftp-mail.LOG ftp-mail.rexx" Arguments
  81.  
  82. EXIT
  83.  
  84. /*----------------------------------------------------------------------------*/
  85. Showsource:
  86. PARSE ARG sig
  87. SAY
  88. SAY "----------------------------------------------"
  89. DO i=sig-2 TO sig+1
  90.   SAY SOURCELINE(i)
  91.   IF i=sig THEN SAY "^^^^^^^^^^^^^^^^^^^^^^^^ Line, in which error occured!"
  92. END
  93. SAY "----------------------------------------------"
  94. RETURN
  95.  
  96. BREAK_C:
  97. BREAK_D:
  98. BREAK_E:
  99. BREAK_F:
  100. HALT:
  101.  
  102.   PARSE SOURCE x
  103.   PARSE VAR x . . progname .
  104.   SAY 'Program 'progname' stopped, Line: 'SIGL
  105.   CALL ShowSource SIGL
  106. EXIT(5)
  107.  
  108. LEAVE:
  109.   PARSE SOURCE x
  110.   PARSE VAR x . . progname .
  111.   SAY 'ERROR: 'errortxt
  112.   SAY
  113.   SAY '       Abort Program 'progname', near line: 'SIGL
  114. EXIT(10)
  115.  
  116. NOVALUE:
  117.   RC=39
  118. SYNTAX:
  119. ERROR:
  120. IOERR:
  121.  
  122.   PARSE SOURCE x
  123.   PARSE VAR x . . progname .
  124.   SAY 'ERROR: Program Error 'RC' in 'progname
  125.   SAY '       "'ERRORTEXT(RC)'"'
  126.   SAY '       Line: 'SIGL
  127.   CALL ShowSource SIGL
  128. EXIT(20)
  129.  
  130.